首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言指针进阶:字符指针&&数组指针&&函数指针

✨作者:@平凡的人1 ✨专栏:《C语言从0到1》 ✨一句话:凡是过往,皆为序章 ✨说明: 过去无可挽回, 未来可以改变 ---- 感谢您点赞与关注,同时欢迎各位有空来访我平凡舍 --...有了前面的一些指针基础之后呢,我们将从这篇博客开始,开始一起探究指针高级主题:指针进阶,将通过不止一篇博客讲完这部分内容,下面一起来看一看> ---- 字符指针指针类型中我们知道有一种指针类型为字符指针...首字符地址放到了pstr中了。并不是整个字符串> 好了。...其实很简单,这里str3和str4指向是一个同一个常量字符串。C/C++会把常量字符串存储到单独一个内存区域,当指针指向同一个字符时候,他们实际会指向同一块内存。...];//二级字符指针数组 有指针数组,反过来想:那有没有数组指针

2.8K20

C语言字符指针

http://c.biancheng.net 字符数组归根结底还是一个数组,上节讲到关于指针和数组规则同样也适用于字符数组。...http://c.biancheng.net 除了字符数组,C语言还支持另外一种表示字符方法,就是直接使用一个指针指向字符串,例如: char *str = "http://c.biancheng.net...关于全局数据区、栈区、常量区以及其他内存分区,我们将在《C语言内存精讲》专题中详细讲解,相信你必将有所顿悟,从根本上理解C语言。...第4行代码是正确,可以更改指针变量本身指向;第5行代码是错误,不能修改字符串中字符。...最后我们来总结一下,C语言有两种表示字符方法,一种是字符数组,另一种是字符串常量,它们在内存中存储位置不同,使得字符数组可以读取和修改,而字符串常量只能读取不能修改。

6.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C 语言】二级指针作为输入 ( 指针数组 | 指针数组排序 | 字符串排序 | strcmp 函数 )

    文章目录 一、strcmp 函数 二、指针数组排序 ( 字符串排序 ) 二、完整代码示例 一、strcmp 函数 ---- strcmp 是 String Compare 缩写 , 该函数用于比较两个字符串...( 字符串排序 ) ---- 指针数组 中每个元素都是 指向 字符指针 , 通过 strcmp 函数对字符串进行排序 , 代码如下 : // 对 指针数组 进行排序 , 排序依据是 指针...发现是 * , 说明数组中元素是指针 , 挖掉 * , 往右看没内容 , 往左看 * 4....发现是 char , 说明指针指向数据是 char 类型 * * array 是一个数组 , 数组中元素 char * 字符串 * * 这是 指针数组 ,...进行排序 , 排序依据是 指针 指向数据对比 for(i = 0; i < num; i++) { for(j = i; j < num; j++)

    69110

    C语言字符数组输入输出

    10; i++){ scanf(“%c”, &c[i]); } printf(“输入多个字符为:%s”, c); } 输入方法2:scanf 输入一个字符串...输入后各个字符数组状态如下(摘自C语言谭浩强第三版): 0 1 2 3 4 5 6 7 8 9 a n a n \0 \0 \0 \0 \0 \0 i s \0 \0 \0 \0 \0 \0 \0...到底应该是什么样子呢? 为了解决scanf函数不能完整地读入带有空格字符字符串,C语言提供了一个专门用于字符函数gets,它读入全部字符(包括空格),直到遇到回车为止。...它读入全部字符(包括空格),直到遇到回车为止。gets()函数并不读取换行符'\n',它会把换行符替换成空字符'\0',作为c语言字符串结束标志。...C语言字符数组与字符种种   https://mp.csdn.net/postedit/84500208 #include void printByChar(char c[], int

    4.5K10

    C 语言】二级指针作为输入 ( 指针数组 | 复杂指针解读 )

    文章目录 一、指针数组 二、复杂指针解读 三、数组指针代码示例 一、指针数组 ---- 定义一个数组指针 : 数组中 元素 是 指向 字符指针 , 即 每个数组元素 只有 4 字节 ; char...--- 复杂指针阅读参考 【C 语言指针数据类型 ( 指针步长 | 复杂指针阅读技巧 ) 【C 语言指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 |...char * 字符串 , /* * 复杂指针阅读 * 参考 https://blog.csdn.net/shulianghan/article/details/121453520...发现是 char , 说明指针指向数据是 char 类型 * * array 是一个数组 , 数组中元素 char * 字符串 * * 这是 指针数组 ,...发现是 char , 说明指针指向数据是 char 类型 * * array 是一个数组 , 数组中元素 char * 字符串 * * 这是 指针数组 ,

    45420

    C语言 | 字符数据输入输出

    在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历是日积月累学习。 那么如何学习呢?当然是每天都练习一道C语言题目!! 作者 闫小林 白天搬砖,晚上做梦。...C语言putchar函数 想从计算机向显示器输出一个字符,可以调用系统函数库中putchar函数。...1、一般形式 putchar(c) putchar是put character(给字符缩写,其作用是输出字符变量c值,显然它是一个字符。...C语言getchar函数 为了向计算机输入一个字符,可以调用系统函数库中getchar函数。...2、getchar函数值就是从输入设备得到字符。 3、getchar函数只能接受一个字符。如果想输入多个字符就要用多个getchar函数。

    2.4K42

    c语言字符指针变量和字符数组异同

    1.字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放是地址(字符串第一个字符地址),而不是将字符串放到字符指针变量中。 2.赋值方式。...char str[20]; str = "ni hao a"; 而对于字符指针变量,可以采用以下方式赋值: char *a; a = "ni hao a"; 但需要注意是赋值给a不是字符...而定义一个字符指针变量时,给指针变量分配内存单元,在其中也可以放一个字符变量地址,也就是说,该指针变量可以指向一个字符型数据,但如果未对它赋予一个地址值,则它并未指向一个确定字符数据。...c[] = "world"; b = c;//这也是对,因为b指向了c首个元素 printf("%s\n", b); system("pause"); return...0; } 5.需要注意是,若定义了一个字符指针变量,并使其指向了一个字符串,也可以用下标的形式引用指针变量所指字符串中字符,例如: #include #include<iostream

    1.5K10

    C语言 | 输入一些字符,直到输入“#”为止

    例44:C语音实现从键盘输入一些字符,逐个把他们送到磁盘上去,直到用户输入一个“#”为止。 解题思路:用fgetc函数从键盘逐个输入字符,然后用fputc函数写到磁盘文件即可。...,filename[10];//定义字符字符数组    printf("请输入所用文件名:");//提示语句    scanf("%s",filename);//键盘输入    if((fp=fopen...//w是指只允许写内容    {     printf("无法打开此文件\n");//提示语句      exit(0);//结束程序    }   ch=getchar();   printf("请输入一个准备存储到磁盘字符串...(10);   return 0;//主函数返回值为0  } 编译运行结果如下: 请输入所用文件名:test.bat 请输入一个准备存储到磁盘字符串(以#结束):ffff7777# ffff7777...以上,如果你看了觉得对你有所帮助,就给小林点个赞,分享给身边的人叭,这样小林也有更新下去动力,跪谢各位父老乡亲啦~ C语言 | 输入一些字符,直到输入“#”为止 更多案例可以go公众号:C语言入门到精通

    2.6K88

    C - 指针C语言指针总结

    C语言指针总结 1. 变量 不同类型变量在内存中占据不同字节空间。 内存中存储数据最小基本单位是字节,每一个字节都有一个内存地址,这个地址是一个十六进制数。...下面通过一张图可以更直观理解内存中地址 ? 内存中地址演示图 2. 指针 指针C语言灵魂。指针变量占据8个字节。 变量在内存中存储。 变量值:存储在变量中数据,叫做变量值。...字符指针也是存储在常量区,字符串也是以字符数组形式存储在常量区,指针中存储字符串在常量区地址。 **以字符数组存储字符串数据,可以修改字符数组元素。...可变 以字符指针形式存储字符串数据,这个时候字符指针指向字符串数据是无法修改,不可变** 字符恒定型 前提:以字符指针形式存储字符串 1.)...当我们重新为字符指针初始化一个字符时候,并不是修改原来字符串,因为原来字符串数据是不可更改,而是重新创建了一个字符串,把这个新字符地址赋给他。建议使用字符指针来存储字符串数据。

    4.2K81

    C语言 | 指向指针指针

    “要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人…万中无一” ——包租婆 这道理放在C语言学习上也一并受用。...在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历是日积月累学习。 那么如何学习呢?当然是每天都练习一道C语言题目!! ? 作者 闫小林 白天搬砖,晚上做梦。...例82:C语言用指向指针指针方法对n个整数排序并输出;要求将排序单独写成一个函数;n个整数在主函数中输入,最后在主函数中输出。...解题思路:读者看着道题时候,首先要观察一下有什么规律,然后指向指针指针在上一道练习题中已经有了铺垫,读者可以联系上一道题去熟练使用指向指针指针。...,&number);//键盘输入 for(i=0;i<number;i++) { pstr[i]=&data[i]; //将第i个整数地址赋予指针数组pstr第i个元素 }

    3K32

    C语言 | 指针引用字符

    C语言字符引用方式 在C语言程序中,字符串是存放在字符数组中。 用字符数组存放一个字符串,可以通过数组名和下标引用字符串中一个字符,也可以通过数组名和格式声明%s输出该字符串。...C语言字符指针作函数参数 如果想把一个字符串从一个函数“传递”到另一函数,可以用地址传递方法,即用字符数组名作参数,也可以用字符指针变量作参数。...C语言使用字符指针变量和字符数组比较 字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放是地址(字符串第1个字符地址),绝不是将字符串放到字符指针变量中。...C语言使用字符指针变量和字符数组注意事项 指针变量值是可以改变,而数组名代表一个固定值,即数组首元素地址,不能改变。...100道C语言源码案例请去公众号:C语言入门到精通

    1.3K40

    C语言 | 指向指针指针排序

    “要成为绝世高手,并非一朝一夕,除非是天生武学奇才,但是这种人…万中无一” ——包租婆 这道理放在C语言学习上也一并受用。...在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历是日积月累学习。 那么如何学习呢?当然是每天都练习一道C语言题目!! ? 作者 闫小林 白天搬砖,晚上做梦。...例81:C语言实现用指向指针指针方法对5个字符串排序并输出。...C语言源代码演示: #include//头文件 #include #define LINEMAX 20 //定义字符最大长度 int main() {...pstr第i个元素 } printf("输入五个字符串:\n");//提示语句 for(i=0;i<5;i++) { scanf("%s",pstr[i]); }

    1.7K32

    C 语言字符串拷贝 ( 优化指针操作 )

    文章目录 一、优化指针操作 二、优化指针操作 2 三、优化指针操作 3 四、优化指针操作 4 一、优化指针操作 ---- 在上一篇博客 【C 语言字符串拷贝 ( 字符串拷贝业务逻辑代码 | 分离 主函数...操作 , 然后进行 to++, from++; 优化后指针操作 : /* * 实现字符串拷贝 ( 实现了模块化 ) * 将 from 指针指向字符串 拷贝到 to 指针指向字符串换...使用下面的代码 , 直接在 循环条件 中进行拷贝赋值操作 , 从 from 指针指向字符 拷贝到 to 指针指向字符 , 如果拷贝值不是 \0 , 则指针累加 继续拷贝 , 如果拷贝值是 \0...指针指向字符串 拷贝到 to 指针指向字符串换 */ void str_copy2(char *from, char *to) { // 从 from 指针指向字符 拷贝到 /...from 指针指向字符串 拷贝到 to 指针指向字符串换 */ void str_copy2(char *from, char *to) { // 从 from 指针指向字符 拷贝到

    47900

    C语言指针(野指针)

    2:如何规避野指针 1.1:指针变量初始化 2.2:指针越界访问 3.3:指针指向空间如果我们还回去的话,就把指针指针置为NULL  4.4:指针使用之前检查有效性 1:什么是野指针?...野指针:就是指针指向位置是不可知(随机性,初始化,不正确,没有明确限制),指针变量在定义时如果未初始化,其值是随机指针变量值是别的变量地址,意味着指针指向了一个地址是不确定变量,此时去解引用就是去访问了一个不确定地址...2:如何规避野指针 1.1:指针变量初始化 int a = 10; int* pa = &a; //指针变量初始化 指针常见错误 引用未初始化指针变量 试图引用未初始化指针变量是初学者最容易犯错误...未初始化指针变量就是“野”指针,它指向是无效地址。 有些书上说:“如果指针变量不初始化,那么它可能指向内存中任何一个存储单元,这样就会很危险。...空指针不应与未初始化指针混淆:保证空指针与指向有效对象任何指针进行比较。但是,根据语言和实现,未初始化指针可能没有任何此类保证。它可能与其他有效指针相等; 或者它可能比较等于空指针

    2.6K20

    C语言指针

    二、指针定义 三、指针初始化 四、指针运算符 五、指针用途举例 六、关于指针疑问 指针C语言中非常重要数据类型,如果你说C语言中除了指针,其他你都学得很好,那你干脆说没学过C语言。...1.我们已经知道,"直接引用"是直接通过变量名来读写变量 2.C语言中还有一种"间接引用"方式(以变量a为例):首先将变量a地址存放在另一个变量中,比如存放在变量b中,然后通过变量b来间接引用变量a...* 看下面的代码,利用指针p读取变量c值 1 int i = 2; 2 char c = 1; 3 4 // 定义一个指向char类型指针 5 char *p = &c; 6 7 // 取出 8...这个要根据内存来分析 根据变量定义顺序,这些变量在内存中大致如下图排布: 其中,指针变量p和int类型变量i各占2个字节,char类型c占一个字节,p指向c,因此p值就是c地址 ?...当利用*p来获取变量c值时,由于指针p知道变量c是char类型,所以会从ffc3这个地址开始读取1个字节数据:0000 0001,转为10进制就是1 2> 后来,我们用int *p指向变量c

    3.3K60
    领券