数组名:【数组名是地址常量】-- 不可以被修改
#include<stdio.h> int main (void) { int a[3] = {1,2,3};//a是数组名, 数组名是地址常量,不能被修改 int b[3] ; printf("the a is %x", a); b = a ;// 这样的code 是错误的, 因为b代表的含义是数组int b[]的地址, 但是数组名是常量, 是不能被修改的. }
指针是变量, 可以使用数组名给指针复制
#include<stdio.h> int main (void) { int a[3] = {1,2,3};//a是数组名, 数组名是地址常量,不能被修改 int b[3] ; int *p = b;//p是指针变量, b是地址常量, 可以把常量复制给变量 }
取数组元素
#include<stdio.h> int main (void) { int a[3] = {1,2,3};//a是数组名, 数组名是地址常量,不能被修改 for (int i=0 ; i < 3; i++) { printf("the i values is %d\n", a[i]); } }
#include<stdio.h> int main (void) { int a[3] = {1,2,3};//a是数组名, 数组名是地址常量,不能被修改 for (int i=0 ; i < 3; i++) { printf("the i values is %d\n", a[i]); // a[i] == *(a+i) } printf("-----------------------\n"); for (int i=0 ; i < 3; i++) { printf("the i values is %d\n", *(a+i));// a[i] == *(a+i) } printf("-----------------------\n"); int *p = a; // a是地址常量, 复制给p for (int i=0 ; i < 3; i++) { printf("the i values is %d\n", p[i]); // p就是a } printf("-----------------------\n"); //int *p = a; for (int i=0 ; i < 3; i++) { printf("the i values is %d\n", *(p+i)); } }
the i values is 1
the i values is 2
the i values is 3
-----------------------
the i values is 1
the i values is 2
the i values is 3
-----------------------
the i values is 1
the i values is 2
the i values is 3
-----------------------
the i values is 1
the i values is 2
the i values is 3
标签:const,常量,--,-----------------------,int,数组名,values,printf,指针 From: https://www.cnblogs.com/shunguo/p/16823158.html