C语言回顾-字符串指针
1.字符串指针
char *变量名="字符串内容";
char ch='b';
char *p1=&ch;
char *str="C Language";//表示s指向字符串的首地址
str="ssssssss";//字符串存在常量区,可以修改s指向的内容
*(str+2)='X';//可以*(str+2)这样访问,但是不能修改。常量区保存的内容都是只读的
常见误区:
char *str2=NULL;
printf("%s",str2);//这样写是错误的,str2没有分配内存空间去存储变量
解决办法:
char *str2=NULL;
str2=malloc(100);
printf("%s",str2);
或者:
char ch3[100];
char *str2=ch3;
printf("%s",str2);
2.二维字符数组
char ch2[3][10]={"abc","def","kkk"};
3.char类型的指针数组和字符数组的区别
char *name[3]={"abc","def","kkk"};//一维指针数组,每个元素存储字符串首地址
#include <stdio.h>
int main(int argc, const char * argv[]) {
char *name[]={"abc","def","kkk"};
for(int i=;i<;i++){
printf("%s\n",*(name+i));//name[i]
}
return ;
}
1)字符串指针char *ss="abc";指向可以改变ss="ssssss";
2)字符数组char s1[]="abc"; s1是一个常量,不能被赋值,s1="Helll";是错误的,
4.字符串排序
//
// main.c
// 字符串排序
//
// Created by fanyafang on 15/11/4.
// Copyright © 2015年 itcast. All rights reserved.
// #include <stdio.h>
#include <string.h> void sortString(char *arr[],int length){
char *temp="";
//选择排序
for(int i=;i<length;i++){
for(int j=i+;j<length;j++){
if(strcmp(arr[i], arr[j])>){
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
} int main(int argc, const char * argv[]) {
char *arr[]={"China","America","Flash","Toop"}; for(int i=;i<;i++){
printf("%s\n",arr[i]);
}
printf("\n");
sortString(arr,); for(int i=;i<;i++){
printf("%s\n",arr[i]);
} return ;
}
C语言回顾-字符串指针的更多相关文章
- Swift3.0语言教程使用指针创建和初始化字符串
Swift3.0语言教程使用指针创建和初始化字符串 Swift3.0语言教程使用指针创建和初始化字符串苹果的Swift团队花了不少功夫来支持C的一些基础特性.C语言中为我们提供了指针,Swift也不例 ...
- C语言中字符数组和字符串指针分析
这几天搞Unix上的C程序,里面用到了很多字符数组和字符串指针,我记得在学完C语言后相当一段时间里,对指针这个东西还是模模糊糊,后来工作也没怎么 用到过C,虽然网上这类的文章也有很多,还是决定自己在这 ...
- c语言字符串指针
最近正在看c语言,在指针这块遇到了麻烦,特别是字符串指针这块,简单记录下. 字符串指针 void main() { char *p = "tasklist"; printf(&qu ...
- C语言复习-字符串与指针
C语言复习-字符串与指针 例一: [字符串处理 去除C代码中的注释] C/C++代码中有两种注释,/* */和//.编译器编译预处理时会先移除注释.就是把/*和*/之间的部分去掉,把//以及之后的部分 ...
- go语言之字符串、指针、数组、切片、结构struct、面向对象
一: 字符串 概述: Go 语言将字符串作为 种原生的基本数据类型,字 符串的初始化可以使用字符串字面量. (1)字符串是常量,可以通过类 数组 索引访问其字节单元,但是不能修改某个字节的值 (2)宇 ...
- C语言 字符串指针和字符串数组使用区别
字符串指针和字符串数组使用区别 1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 ...
- 黑马程序员_ C语言基础之指针(三)
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 概览 指针是C语言的精髓,但是很多初学者往往对于指针的概念并不深刻,以至于学完之后随着时间的推移 ...
- C语言中的指针数组
C语言中的指针数组是什么,像 char *a[]={"ddd","dsidd","lll"}; 这里讲一下注意如果我们使用了a也就是首元素的 ...
- <2014 04 15> C++语言回顾精要(原创By Andrew)
C++语言回顾精要 <Visual C++程序设计>张岳新,这本书是很多学校的本科生C++教学用书,今天重新拿来翻了一遍.跟很多国人写的技术书籍一样,写书并不是为了让初学者看懂入门,而是为 ...
随机推荐
- 工作中的sql语句总结
1,查找mysql 数据库 自动 添加 序号 字段列1,2,3,4 ) AS rowno,ip,startcount ) b 2,mysql的分页语句 limit后面第一个参数是index,从0开始: ...
- [IOS]swift自定义uicollectionviewcell
刚刚接触swift以及ios,不是很理解有的逻辑,导致某些问题.这里分享一下swift自定义uicollectionviewcell 首先我的viewcontroller不是直接继承uicollect ...
- 深入浅出Android App耗电量统计
前言 在Android统计App耗电量比较麻烦,直至Android 4.4,它仍没公开“电量统计”API或文档……额,是的,仅没有公开,并不是没有.平时在手机“设置- 电量”看到的数据 就是系统调用内 ...
- 1.javascript篇(基础)
js基础部分 js定义: 1.js是通过浏览器解析,然后由浏览器执行的一种脚本语言2.css控制样式,而js控制行为 基本格式: <script type="text/javascri ...
- mac安装tensorflow报错
问题:mac安装tensorflow过程中,爆出oserror:permission denied 解决方案:关闭mac的sip,然后sudo安装 关闭sip的方法:重启mac,按住command+R ...
- Vue.js双向绑定的实现原理
Vue.js最核心的功能有两个,一是响应式的数据绑定系统,二是组件系统.本文仅探究几乎所有Vue的开篇介绍都会提到的hello world双向绑定是怎样实现的.先讲涉及的知识点,再参考源码,用尽可能少 ...
- [dpdk] 熟悉SDK与初步使用 (二)(skeleton源码分析)
接续前节:[dpdk] 熟悉SDK与初步使用 (一)(qemu搭建实验环境) 程序逻辑: 运行参数: 关键API: 入口函数: int rte_eal_init(int argc, char **ar ...
- PHP while使用
$i = 0; while(true){ if($i == 0){ $i++; continue; }else if($i > 10){ break; }else{ echo $i." ...
- remi
很简单呀,又不用自己编译.用 http://rpms.remirepo.net/ 这个 remi 的包,直接 yum install php-swoole 就完事了 安装remi包也很简单, yum ...
- Glide 魔法般的自定义扩展
使用过Glide的朋友都明白,简单的用法就是: Glide.with(context) .load("http://inthecheesefactory.com/uploads/source ...