@coder-pig
2022-09-06T17:25:45.000000Z
字数 1350
阅读 449
C语言
本节引言:
在第五节的时候我们对C里的指针进行了初步的学习,而作为C语言的灵魂,
当然不会就那么简单,本节我们来进一步学习指针,包括:函数与指针
,
指针数组
,二级指针
,内存的动态
以及 const修饰指针
。
该程序需要用到命令行参数,需要先编译生成exe,然后cmd命令行来到生成的exe文件
所在目录下输入:文件名 one two three,结果会输出one two three。
问题引入:如何保存一个字符串更好?如果保存的不止一个,而是多个字符串呢?
问题一回答:
char name[20] = "~" ②char *name = "~" //前者定义了长度,不能直接赋值,明显后者比较灵活
问题二回答:
代码示例:
动态分配10个int类型的空间大小,如果大于这个数目则动态分配,否则利用realloc
重新分配内存。
#include <stdio.h>
#include <stdlib.h>
#define N 10
int main()
{
int *p = 0;
int i,num,*q = 0;
p = (int *)malloc((N * sizeof(int)));
if(p == 0)
{
printf("内存分配错误!\n");
exit(0);
}
printf("请输入要存储的元素个数:\n");
scanf("%d",&num);
if(num <= N)
{
for(i = 0;i < N;i++)
scanf("%d",p+i);
}
else
{
for(i = 0;i < num;i++)
q = (int *)realloc(p,(N + N)*sizeof(int));
if(q == 0)exit(0);
for(i = 0;i < num;i++)
scanf("%d",q + i);
p = q;
}
for(i = 0;i < num;i++)
printf("%3d",*(p+i));
printf("\n");
free(p);
return 0;
}
const
关键字修饰的数据类型是指 常类型
,最简单的用法是用来定义const
常量,具有不变性,比如int const a = 10; 要注意一点:
const修饰的常量在声明的时候就要进行初始化赋值,不然后面是不能赋值的!
另外在与指针结合使用的时候,const 颠倒写 表示的意思是不一样的!
上述结论可以自行修改下述例子里指针与指向的内容自行测试:
#include<stdio.h>
int main()
{
int const a;
a = 5;
printf("a = %d\n",a);
return 0;
}
本文链接:小猪的C语言快速入门系列(七)
作者:Coder-Pig
出处:http://blog.csdn.net/coder_pig
本文基于知识共享署名-相同方式共享 4.0 国际许可协议发布,欢迎转载,
演绎或用于商业目的,但是必须保留本文的署名及链接。åç