Parámetros y variables

Parámetros - Parámetros de las funciones | parámetro

Los parámetros que se producen en la definición de función puede ser visto como un marcador de posición, que no tiene datos, sólo cuando la función es llamada hasta que la transmisión entrante recibida, llamada parámetros formales, conocido como parámetros.

Los parámetros que se invoque la función dada contiene datos reales, se utiliza en el código de función, los llamados parámetros reales, se hace referencia como argumento.

función argumento de parámetros y la transferencia de datos, se produce una llamada de función, el valor del argumento pasado a parámetro.

Y los argumentos de los parámetros tienen las siguientes características:

  • variables de parámetros sólo se asignan cuando se invoca la función de memoria, el final de la llamada, liberar de inmediato a la memoria, por lo que el parámetro variable es válida sólo dentro de la función no se puede utilizar fuera de la función.

  • Los argumentos pueden ser constantes, variables, expresiones, funciones, etc., independientemente de qué tipo de datos del argumento durante las llamadas de función, deben tener un cierto valor, con el fin de transmitir estos valores a los parámetros, se debe avanzar con la asignación, y otras maneras de hacer un valor de determinación argumento de entrada obtenida.

  • Argumentos y parámetros sobre el número, tipo, deben ser estrictamente coherente con la orden, o se producirán "No coinciden los tipos" error. Por supuesto, si el tipo de cambio se realiza automáticamente o por un molde, entonces el argumento puede ser diferente del tipo del tipo de parámetro.

  • La transferencia de datos se lleva a cabo en una llamada de función es unidireccional, sólo el valor de los argumentos se pasa al parámetro, los valores de los parámetros no puede transferirse al revés que en los argumentos; en otras palabras, una vez que se complete la transferencia de datos, el verdadero argumentos y parámetros tienen nada que ver nunca más, por lo que, durante la llamada a la función, un cambio de valor de parámetro no afecta al argumento.

Copiar el código
1 #include <stdio.h> 
 2 
 3 //计算从1加到n的值
 4 int suma (int n) { 
 5 int i; 
 6 para (i = n-1; i> = 1; i -) { 
 7 n + = i; 
 8} 
 9 printf ( "El n interior =% d \ n", n); 
10 de retorno n; 
11} 
12 
13 int main () { 
14 int m, total, 
15 printf ( "número de una entrada:"); 
16 scanf ( "% d", & m); 
17 Total = suma (m); 
18 printf ( "El m exterior =% d \ n", m); 
19 printf ( "1 + 2 + 3 + ... +% d +% d =% d \ n", m-1, m, total); 
20 return 0; 
21}
Copiar el código

Resultados de ejecución:
la entrada de un número: 100↙
de lo interno = n-5050
de The Outer m = 100
. 1. 3 + 2 + ... + 99 + 100 + 5050 =

valor introducido por Scanf m, como argumentos, llamando sum () cuando se transfiere al parámetro n.

A partir de la situación de funcionamiento, el valor de entrada es 100 m, es decir, el valor del argumento de m es 100, este valor se pasa a la función cuando la suma, el valor inicial del parámetro n es también 100, durante la ejecución de la función, el valor del parámetro de n se convierte en 5050. Después de que se ejecute la función, el valor de salida del argumento es todavía 100 m, el valor del argumento es no varía visibles con cambios de parámetros.

 

tomado http://c.biancheng.net/cpp/html/57.html

 

Las variables locales

Definido dentro de la variable de función llaman variables locales (Variable Local), su alcance está limitado a la función interna, después de salir de la función no es válido, entonces se utilizará el error.

  • Las variables definidas en la función principal es una variable local, que sólo se puede utilizar en la función principal, al mismo tiempo, la función principal no puede usar las funciones definidas en la otra variable. principal función es una función, y otras funciones el mismo rango.
  • Parámetro las variables, las variables en la definición de las variables locales son una función del cuerpo. Argumento a un procedimiento de valores de parámetros de proceso se pasa a la variable local.
  • Las diferentes funciones pueden ser utilizados en el mismo nombre de variable, que representan diferentes datos, diferente asignación de memoria, lo que interfiere, no se produce confusión.
  • En bloques de instrucciones también definen variable, su alcance está limitado al bloque actual.

 

Copiar el código
. F1 int 1 (int A) { 
2 int B, C; // A, B, C son sólo dentro válido () de función F1 
. 3 retorno A + B + C; 
. 4} 
. 5 int main () { 
. 6 int m, n- ; // m, n válida sólo dentro de () la función principal 
. 7 return 0; 
. 8}
Copiar el código

Las variables globales

Todas las variables en la definición de la función externa se llama una variable global (variable global), su ámbito de aplicación es todo el programa por defecto, es decir, todos los archivos de origen, incluyendo .c y .h.

Copiar el código
1 int a, b; // variable global 
 2 func1 void () { 
 . 3 // el TODO: 
 4.} 
 5. 
 6 un flotador X, Y; // variables globales. 
 7 int func2 () {. 
 8 // el TODO:. 
 9.} 
10 
11 int. main () { 
12 es // el TODO: 
13 es return 0; 
14}
Copiar el código

a, b, x, y son variables globales definidas fuera de la función. código de lenguaje C se lleva a cabo de forma secuencial desde la parte frontal a la parte posterior, ya que la x, y definen el func1 función () después de que se func1 no válido () en su interior, y a, b se define al comienzo del programa fuente, por lo que el func1 (), func2 ( ) son válidos y main () en el interior.

Ejemplo para las variables locales y variables globales

Copiar el código
. #Include 1 <stdio.h> 
 2 
 . 3 n-int = 10; // variables globales 
 . 4 
 . 5 func1 void () { 
 . 6 = 20 es n-int; // variables locales 
 7 printf ( "func1 n:% d \ n", n ); 
 . 8} 
 . 9 
10 func2 void (int n-) { 
11 el printf ( "func2 n -:% D \ n-"., n-); 
12 es} 
13 es 
14 void FUNC3 () { 
15 el printf ( "FUNC3 n -:% D \ n-" , n-); 
16} 
. 17 
18 es int main () { 
19 n-int = 30;. // variables locales 
20 es func1 (); 
21 es func2 (n-); 
22 es FUNC3 (); 
23 es {} // bloque rodeado por un 
24 { 
25 int n = 40; // variables locales 
26 es el printf ( "n-Block:% D \ n-", n-);  
27}
28 la printf ( "n-principal:% D \ n-", n-);
29
30 return 0; 
31}
Copiar el código

Resultados RUN:
func1 n-: 20 es
func2 n-: 30
FUNC3 n-: 10
Bloque n-: 40
principal n-: 30

código, aunque las mismas variables se definen en una pluralidad de n, pero difieren en su ámbito de aplicación, en la posición de memoria (dirección) también diferente, así que es la variable independiente, independientemente uno del otro, no producirá 重复定义(Redefinition)un error.

1) Para func1 (), la salida de 20, utilizando una interna, obviamente, en función de n, n-en lugar de externa; () El mismo es cierto func2.

Cuando una variable global y una variable local con el mismo nombre, en una escala local de las variables globales son "bloqueadas", ya no funciona. O bien, utilizar una variable para seguir el principio de proximidad, si existe el mismo nombre en las variables de ámbito actuales, no va a ir a buscar a variables de ámbito mayor.

2) FUNC3 () de salida de 10, utilizando las variables globales, la función desde FUNC3 () es una variable local n no existe, sólo para el exterior de la función compilador, es decir, para encontrar el alcance global de n variables.

3) el { }alcance independiente bloque de código también está encerrado, printf () utiliza su propio variable interna n, la salida 40.

4) lenguaje C dispone que sólo un pequeño margen para la gran alcance para encontrar variables, y no puede, a su vez, utilizar un alcance menor de variables. Para la función main (), incluso si el bloque de n-código más cerca de la instrucción de salida, pero va a seguir utilizando la función main () definido al principio n, la salida 30 es el resultado.

 

 

Estándar lenguaje C ( ANSI C ) define un total de 15 fichero de cabecera, llamada "biblioteca estándar C", todos los compiladores deben soportar, cómo utilizar correctamente y hábilmente estos biblioteca estándar, puede reflejar el nivel de un programador.

    • programador cualificado: <stdio.h>, <ctype.h>, <stdlib.h>, <string.h>
    • programadores expertos: <assert.h>, <limits.h>, <stddef.h>, <> time.h
    • 优秀 程序员: <float.h>, <math.h>, <error.h>, <locale.h>, <setjmp.h>, <signal.h>, <stdarg.h>

Supongo que te gusta

Origin www.cnblogs.com/FettersLove/p/12524765.html
Recomendado
Clasificación