基础

  1. 字符串的表现形式

    1. char string[] = “hello world"; //栈(局部)
    2. char *str = “hello world"; //文字常量区
  2. 二者区别
    1. 字符数组,每个元素存一个字符;字符指针只存放字符串的首地址,不是整个字符串
    2. 字符数组,在(栈或堆)中开辟空间存放字符串;字符指针在文字常量区开辟空间存放字符串
    3. 字符数组,中的字符可以修改;字符指针的字符不可修改,但可修改指针的指向(文字常量区的内容为只读内容)
    4. 字符数组,在编译时为其分配内存单元,有确定的地址;字符指针,指向不确定内存段,最好初始化
      1. 字符数组
char str[10];
scanf("%s", str); //或使用字符串拷贝函数进行拷贝赋值
 2. 字符指针

危险:

char *p; //指针变量未初始化,指向一个不确定的内存段
scanf("%s", p);

建议:

char *p = NULL;
p = (char *)malloc(10);
scanf("%s", p); //或使用字符串拷贝函数进行拷贝赋值

参考:
https://baijiahao.baidu.com/s?id=1604208649221500040&wfr=spider&for=pc

指针作为返回值

#include<stdio.h>
#include<string.h>
#include<stdlib.h>char * test()
{//字符数组  创建位置在栈区  //char arr[] = "hello world";//字符串常量  会在程序运行时   常量区  不能被修改的 在程序结束时 销毁char * arr = "hello world";//保证指针地址对应的值是有内容的return arr;
}
int main04()
{char * p = test();printf("%p\n", p);printf("%s\n", p);system("pause");return EXIT_SUCCESS;
}

C语言 指针与字符串相关推荐

  1. c语言 指针到字符串,C语言中的指针和字符串

    前言 务必理解指针与内存模型,不要死记硬背. 内存里的字符串 C语言中的字符串一般是char *类型的,这是怎样存在内存中的呢? cchar *s = "NIHAO"; | s:4 ...

  2. AutoLeaders控制组——C语言指针和字符串学习笔记

    指针和字符串目录 1.指针概述 1.1内存 1.2物理存储器和存储地址空间 2指针基础知识 2.1指针变量的定义和使用 2.2通过指针间接修改变量的值 2.3指针大小 2.4野指针和空指针 2.5万能 ...

  3. c语言指针 查找字符串,C语言基础及指针⑥字符操作

    字符操作 , 是我们写程序时 , 最常用的一种操作 , 例如:字符串截取 , 字符串替换 , 字符串转整数类型等等 , 都是字符操作 , 在java中String类就是二三十个方法 , 还有Strin ...

  4. c语言指针指向字符串单个,C语言 有没有可能调用一个指向字符串的函数指针?...

    我是个在学C的萌新,一天突发奇想,指令和数据只是对人来说才有意义, 一段二进制串对CPU来说既可是数据,也可是指令,IP指向哪里就当作指令执行.那这样的话是不是意味着可以在C中执行字符串呢? 可,在探 ...

  5. c语言指针字符串逆序存放,C语言指针实现字符串的反转

    题目要求: 编写程序:从键盘任意输入一个字符串,输出该字符串. 然后,将该字符串逆序存放后再输出,要求用字符指针完成. 代码: //解法一 #include #include int main() { ...

  6. c语言指针实现字符串倒序输出,菜鸟求助-如何用指针法将一串字符按单词的倒序输出?如:i love yo...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include void fun (char *ch1, char *ch2) { int i, n(0), k; int lengt ...

  7. c语言指针交换字符串组,c语言 指针交换两个字符串

    其实这个题是要用结构把学生成绩输进去再根据程序排序再输出学生信息,我不知道怎么根据成绩大小把st[].name输出啊,我用了一个交换函数,change想交换st[j].name和st[j-1].nam ...

  8. 【C 语言】二级指针案例 ( 字符串切割 | 返回 自定义二级指针 作为结果 | 每个 一级指针 指向不同大小内存 | 精准分配每个 一级指针 指向的内存大小 )

    文章目录 一.二级指针案例 ( 返回自定义二级指针 | 精准控制内存大小 ) 二.完整代码示例 一.二级指针案例 ( 返回自定义二级指针 | 精准控制内存大小 ) 博客 [C 语言]二级指针案例 ( ...

  9. 【C 语言】二级指针案例 ( 字符串切割 | 返回 自定义二级指针 作为结果 )

    文章目录 一.二级指针案例 ( 返回自定义二级指针 ) 二.完整代码示例 一.二级指针案例 ( 返回自定义二级指针 ) 上一篇博客 [C 语言]二级指针案例 ( 字符串切割 | 返回 二维数组 作为结 ...

最新文章

  1. web类协议脚本-飞机订票系统示例
  2. php文本教学,php中文本操作的类
  3. 晶创6电梯卡的数据结构_修改电梯卡发现“商机”,男子涉嫌盗窃罪!
  4. Nginx快速搭建和基本使用
  5. java script的trim_Javascript中实现trim()函数的两种方法
  6. PGpool 编译出错
  7. 无废话ADO.NET 第三章 进行查询
  8. flink1.12.2+hudi0.9.0测试
  9. Go defer实现原理剖析
  10. DELPHI XE5 FOR ANDROID 模仿驾考宝典 TMEMO 控件随着字数增多自动增高
  11. 【面试题7】用两个栈实现队列
  12. 《Android游戏编程入门经典》——4.6节问与答
  13. 2013计算机大纲,2013安徽公务员考试计算机大纲
  14. 【Hadoop】Hadoop大数据架构及关键组件
  15. 天堂2单机版如何架设mysql_天堂2单机版 L2J-som-rotm 安装全过程及常用工具 一步到位...
  16. 14种鼻型图解_十种鼻型分类图详细解析
  17. 如何高效工作——团队篇
  18. 重磅消息集中来袭 A股再现“独立行情”?
  19. 7-1 最长公共子序列 (20 分)
  20. java——Random种子

热门文章

  1. 如果数组最后一项为空删除最后一项和去前面的逗号_手写数组方法
  2. mybatis mysql 配置文件_mybatis简单应用(基于配置文件)_MySQL
  3. linux date -s_Linux炫技:左手密码生成器,解放右手生产力
  4. 1000道Python题库系列分享18(11道选择题)
  5. Python使用BoundedSemaphore对象进行线程同步
  6. Python编程一定要注意的那些“坑”(六)
  7. 详解Python的max、min和sum函数用法
  8. php判断平年和闰年,平年和闰年的三种判断方法
  9. 开源 php 报表,php网站流量统计系统-开源系统 | 学步园
  10. 123. 买卖股票的zui佳时机 III(JavaScript)