重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
C语言中变量遵循“先定义后使用”的原则:
成都网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联建站于2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站。
1、定义变量的格式:数据类型 变量名;
首先要强调的一点是:变量的定义是一条语句,每条语句都是以分号结尾的。故定义完变量,后面不要漏掉“;”分号。
在变量定义中,“数据类型”表示想要存储什么类型的数据就定义什么类型的变量。
如想要存储整数就定义成 int 型;想要存储小数就定义成 float 型或 double 型;想要存储字符就定义成 char 型等等。
“变量名”就是你想给这个变量起个什么名字,通常都是用字母、数字与下划线组合而成。比如:
“int i;double price;double goods_price2”等等。
就表示定义了一个整型变量 i、小数型变量price、goods_price2;
2、变量定义完成后,接下来就是使用变量,为变量赋值。
将一个值放到一个变量中,这个动作叫“赋值”。通俗点讲,“给变量赋值”意思就是将一个值传给一个变量。
赋值的格式是:
变量名 = 要赋的值;
它的意思是将=右边的数字赋给左边的变量。比如:
i = 3;
这就表示将 3 赋给了变量 i,此时 i 就等于 3 了。
3、变量的定义和赋值,可以分成两步写,也可以将它们合成一步,而且事实上,在实际编程中用得最多的也是合二为一的写法。
形式如下:
数据类型 变量名 = 要赋的值;
比如:int i = 3;
就表示定义了一个变量 i,并把 3 赋给这个变量。它与
int i;
i =3;
是等价的。
在定义变量时也可以一次性定义多个变量,比如:
int i, j;
这就表示定义了变量 i 和 j。这里需要强调的是,当同时定义多个变量时,变量之间是用逗号隔开的,千万别写成分号。这是很多新手最容易犯的错误,即将逗号和分号记混了。
同样也可以在定义多个变量的同时给它们赋值:
int i = 3, j = 4;
中间还是用逗号隔开,最后别忘记输入分号。
最后需要注意的是,在较老的 C89/C90 标准(也称 ANSI C 标准)中,变量只能在程序的开头定义,或者说变量定义的前面不能有其他非声明或非定义的语句。
扩展资料:
在主回答中,提到了变量定义时,变量名通常都是用字母、数字与下划线组合而成,但是实际上,变量名也不是随便组合的,变量定义需要遵循一定的规范,否则容易产生歧义,影响整体程序代码 的可读性。
所以在定义变量的时候,要注意以下命名规范:
(1)、变量名的开头必须是字母或下划线,不能是数字。实际编程中最常用的是以字母开头,而以下划线开头的变量名是系统专用的。命名应当直观且可以拼读,可望文知意,便于记忆和阅读。
标识符最好采用英文单词或其组合,不允许使用拼音。程序中的英文单词一般不要太复杂,用词应当准确。
(2)、变量名中的字母是区分大小写的。比如 a 和 A 是不同的变量名,num 和 Num 也是不同的变量名。当标识符由多个词组成时,每个词的第一个字母大写,其余全部小写。
比如: int CurrentVal;
这样的名字看起来比较清晰,远比一长串字符好得多。
(3)、变量名绝对不可以是C语言关键字,不能有空格。
(4)、变量名的长度应当符合“min-length max-information”原则。
C 是一种简洁的语言, 命名也应该是简洁的。例如变量名MaxVal 就比MaxValueUntilOverflow 好用。标识符的长度一般不要过长,较长的单词可通过去掉“元音”形成缩写。
另外,英文词尽量不缩写,特别是非常用专业名词,如果有缩写,在同一系统中对同一单词必须使用相同的表示法,并且注明其意思。
在c语言中用没有函数判定一个变量的类型,可以使用sizeof来判断变量大小。
示例:
#include stdio.h
#include stdlib.h
int main(int argc,char **argv) //主程序
{
//对C语言内置类型的所占字节数的测试
printf("size of char is: %d\n",sizeof(char)); //字符型数据所占字节数 、
printf("size of short is: %d\n",sizeof(short)); //短整形数据所占字节数
printf("size of int is: %d\n",sizeof(int )); //整形数据
printf("size of short int is: %d\n",sizeof(short int)); //短整形
printf("size of long int is: %d\n",sizeof(long int)); //长整形数据
printf("size of float is: %d\n",sizeof(float)); //浮点型数据
printf("size of double is: %d\n",sizeof(double)); //双精度数据
//对字符及字符串数组所占字节数的测量
char a[] ={'a','b','c','d','e'};
printf("size of a[] is: %d\n",sizeof(a)); //输出数组a[]所占字节数
char b[]={"abcde"}; //初始化字符串b
printf("size of b[] is: %d\n",sizeof(b)); //数组b[]
char c[][3]={{'a','b','c'},{'d','e','f'},{'g','h','i'},{'j','k','l'}}; //初始化二维字符型数组
printf("size of c[][] is: %d\n",sizeof(c)); //二维数组c所占字节数
printf("size of c[0] is: %d\n",sizeof(c[0])); //二维数组中的某行所占的字节数,例如第0行
printf("size of c[0][0] is: %d\n",sizeof(c[0][0])); //某行某个元素,例如第0行第0个元素
//对指针所占字节数的测量
char *p=0;
printf("size of *p is: %d\n",sizeof(p)); //字符型指针
system("pause");
return 0;
}
扩展资料
使用sizeof()计算数组长度
将sizeof用于 expr是并没有计算expr的值。特别是在sizeof *p中,指针p可以是一个无效地址,因为不需要对p做解引用操作。
对char类型或值为char类型的表达式做sizeof操作结果为1。对引用类型做sizeof操作,将返回存放此引用类型对象所需的内存空间大小。
对指针做sizeof操作,将返回存放指针所需的内存大小,注意,如果要获取该指针指向对象的大小,则必须对该指针进行解引用。对数组做sizeof操作等效于对其元素做sizeof操作的结果乘上数组元素的个数。
因为sizeof返回整个数组在内存中的存储长度,所以用sizeof数组的结果初一sizeof其元素类型的结果,即可求出数组元素的个数:int sz = sizeof(ia)/sizeof(*ia);
通常将8位的块作为一个字节,32位或4个字节作为一个 “字”。一般的short为半个机器字长,int为一个机器字长。
静态变量,特点就是只初始化一次。所以在这里b是只定义一次的。
于是
1 会占用,但是很少。 和全局变量定义差不多
2 没有,因为不存在多次定义,只定义了一次。
3 除了生命周期,最大的差别就是作用域了。
局部变量,只能在函数内访问,而全局变量就是谁都能访问,这样很容易出现混乱,尤其是多线程的情况下。
除此外,非静态的局部变量,在函数退出后内存就释放了,如果所有变量都定义成全局的,那明显是对内存的一种浪费。
c 中变量使用,必须先声明,声明其实就是声明类型和名字;
不过,我想你应该问的是,随便给我一个变量p,如 int* (*(*p)[10])(int,int) ,然后怎么看类型吧、?
首先,我们一步一步来看
int a; // a 是 int 型,你懂的;
int a[10]; // a 是 int[10],也就是 10 个 int 的数组类型;
int *pi; // pi 是 int*,也就是 pi 可以放一个int变量的地址;又称int指针类型
int *pj[10]; // 根据[] 的优先级高于*,那么改写一下,int* ( pj[10] );
// pj 是int* [10]; 也就是10 个 int* 的数组类型
int (*pk)[10]; // pk 是指针类型,什么指针?int [10] 类型的指针,就是数组指针
int *fun(int, int); // fun 是个函数,不是个变量,but 具有变量的某些特征;返回int*
int (*pfun)(int ,int); // pfun 类型int (*)(int,int);函数指针,可以 pfun = fun;
下面就说,我给出的那个 int* (*(*p)[10]) (int,int)
从 名字p,往外看,或是两侧看,发现了*,那么p就是个指针类型;什么指针??
继续看,看到了 [10] ,所以是 数组指针; 什么数组??
继续看,(*),哦,是,指针数组,什么指针??
int* (int,int) ,哦,返回int*,用两个int,作为参数的函数指针;
于是,那么 p 的类型:
指针,
数组、指针,
指针、数组、指针
函数、指针、数组、指针
两个int参数int*的返回值的函数、指针、数组、指针;
那个,我感觉差不多了,你自己琢磨一下吧、多看多想,自然就会明白的~~~建议看看KR的那本书,上面有类型解析;~~
1、首先,我们可以在函数外面定义变量,就是全局变量。
2、局部变量可以与全局变量同样命名。
3、但是优先级是局部变量优先。
4、但是局部变量的生命周期是整个结构内。
5、全局变量是整个程序结束,才释放。
6、我们也可以为变量加上修饰符。