当前位置: 首页 > news >正文

C语言问题汇总

指针

#include <stdio.h>int main(void){int a[4] = {1,2,3,4};int *p = &a+1;int *p1 = a+1;printf("%#x,%#x",p[-1],*p1);}

以上代码中存在错误。

    int *p = &a+1;

错误1:取a数组的地址,然后+1,即指针跳过int [4]大小的字节:4*4个字节。

(本题有别的意图,但是这种赋值是不正确的,而且赋值之后p指向的是未定义的空间。)

错误2:int * p定义的是一个指向整型变量的指针,然而在赋值的过程中,试图将一个数组的地址赋值给整型指针。

正确写法        int *p[4] =&a+1;)使用数组指针接收数组a的地址。

解释:int *p = a + 1;代表数组的地址从首元素,偏移一个sizeof(int)的空间,,指向数组中的第二个元素。

p[-1]代表指针向上偏移一个sizeof(int)的大小。此时刚好指向了数组中的最后一个元素。

例:int a[5],*p=a;

*(&a+I) 同理可得:取a的地址偏移了 I 整个数组的大小空间。


问题:

#include <string.h>
main(int argc,char *argv[])
{int i,len=0;
for(i=1;i<argc;i++)

len+=strlen(argv[i]);
printf("%d\n",len);
}
程序编译连接后生成的可执行文件是ex1.exe,
若运行时输入带参数的命令行是:
ex1 abcd efg 10<回车>
则运行的结果是__9____。

分析:输入的abcd efg 10 作为函数的参数,本题实现的功能主要是求和数组中字符串的总长度。明确可执行文件exe命令行输入作为函数的参数传递。


分析:首先定义了数组指针int (*p)[3];此时p的第一个元素指向的二维数组首元素的位置。

A :(p+i)表示指针偏移int【3】的大小,即在数组中跳过i行。然后在*(p+i)代表第i行的数组变量名。在+j可表示第j列元素。

s【0】【0】s【0】【1】s【0】【2】
s【1】【0】s【1】【1】s【1】【2】

B:p【I】与*(p+I)的含义相同。

D: x相当于p【i】【j】


f(int  *b , int m,  int n)
{ int  i,s=0;
for(i=m;i<n;i=i+2) s=s+*(b+i);
return s;
}
main()
{int x,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf("%d\n",x);
}


A) 10    B)18    C) 8      D) 15

函数分析:

首先函数的传递参数是3,7,那么s = *(a + 3),此时表示的是从a【0】偏移3位

即a【3】 ==  4;a【5】 == 6;

s = 4+6;


以下程序段的输出结果是(B )

char s[]="\\141\141abc\t";

printf ("%d\n",strlen(s));

A) 9   B) 12   C) 13   D) 14

函数分析:\141也是一种转义字符。

因此字符串的长度应该是9;


若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是(B  )

A) i=*p; B) *p=*&j; C) i=&j; D) i=**p;

分析:对j取地址 之后再*         表示的是j的本身。

那么*p = j;


void fun(char *a, char *b)

{

 a=b; (*a)++;

}
void  main()
{

char c1='A',c2='a',*p1,*p2;
p1=&c1; p2=&c2; fun(p1,p2);
printf("%c%c\n",c1,c2);
}
输出的结果是什么?Ab        //c1并未被改变,而p1指向c2进行*运算改变了c2的值。

分析:其中char * format = "%s,a= %d,b = %d\n",为格式字符串,定义字符串的输入格式,

printf(“%s a = %d,b =%d、n”,“a+=b”,a,b)

相关文章:

C语言问题汇总

指针 #include <stdio.h>int main(void){int a[4] {1,2,3,4};int *p &a1;int *p1 a1;printf("%#x,%#x",p[-1],*p1);} 以上代码中存在错误。 int *p &a1; 错误1&#xff1a;取a数组的地址&#xff0c;然后1&#xff0c;即指针跳过int [4]大小的字节…...

QT 的 blockSignals(true) 的作用范围

在 Qt 中&#xff0c;blockSignals 是一个用于控件的方法&#xff0c;它用于阻止控件发出的信号。如果你在一个 MainWindow 对象上调用 blockSignals(true)&#xff0c;它会阻止该 MainWindow 对象发出的所有信号。 这意味着&#xff0c;如果 MainWindow 上有任何子控件&#…...

【C++私房菜】类和对象万字详解

目录 一、类与对象 1、类是什么 二、类和对象的基础知识 2.1 定义类&#xff1a;成员变量和成员函数 2.2 创建对象&#xff1a;实例化一个类的对象。 2.3对象的生命周期&#xff1a;构造函数和析构函数。 a. 构造函数 b. 析构函数 c.小结&#xff1a; 三、成员变量和…...

PDF下载添加水印和访问密码

下载接口 ApiOperation(value "下载文件-pdf", notes "下载文件pdf版", httpMethod "GET", response WebResult.class)RequestMapping(value "/downloadPdf", method RequestMethod.GET)public void downloadFilePdf(RequestPar…...

基于SSM+MySQL的的新闻发布系统设计与实现

目录 项目简介 项目技术栈 项目运行环境 项目截图 代码截取 源码获取 项目简介 新闻发布系统是一款基于Servletjspjdbc的网站应用程序&#xff0c;旨在提供一个全面且高效的新闻发布平台。该系统主要包括后台管理和前台新闻展示两个平台&#xff0c;涵盖了新闻稿件的撰写…...

记录首次使用yolov8-obb

1.数据格式 之前使用的数据格式是yolov5_obb的数据格式&#xff0c;然后需要转数据格式&#xff1a; 目前的数据只支持四个坐标点标注的数据&#xff0c;参考&#xff1a;If a corner of the rotate rectangle is out of the image range, How to annotate the image? Issu…...

深度学习环境配置:Anaconda 安装和 pip 源

conda是一种通用包管理系统&#xff0c;与pip的使用类似&#xff0c;环境管理则允许用户方便地安装不同版本的python并可以快速切换。 Anaconda则是一个打包的集合&#xff0c;里面预装好了conda、某个版本的python、众多packages、科学计算工具等等&#xff0c;就是把很多常用…...

100 个 NLP 面试问题

100 个 NLP 面试问题 一、 说明 对于技术磨练中&#xff0c;其中一项很酷的技能培训是提问。不知道答案并没有多大的错;错就错在不谷歌这些疑问。本篇就是在面试之前&#xff0c;您将此文档复制给自己&#xff0c;做一个系统的模拟实战。 二、经典NLP问题&#xff08;共8题&a…...

C# OMRON PLC FINS TCP协议简单测试

FINS(factory interface network service)通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令&#xff0f;响应系统。运用 FINS指令可实现各种网络间的无缝通信&#xff0c;包括用于信息网络的 Etherne(以太网)&#xff0c;用于控制网络的Controller Link和SYSMAC LINK。…...

MQTT在linux下服务端和客户端的应用

MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种轻量级、开放标准的消息传输协议&#xff0c;设计用于受限设备和低带宽、不稳定网络的通信。 MQTT的一些关键特点和概念&#xff1a; 发布/订阅模型&#xff1a; MQTT采用发布/订阅&#xff08;Publ…...

韦达定理用处多

文章目录 前言一、一元二次方程中根和系数之间的关系二、韦达定理的数学推导和作用1. 韦达定理的数学推导2. 韦达定理的作用 三、韦达定理的应用举例1. 解题示例12. 解题示例23. 解题示例34. 解题示例45. 解题示例56. 解题示例67. 解题示例7 总结 前言 韦达定理说明了一元n次方…...

Kotlin-类

构造函数 Java final File file new File("file.txt");Kotlin val file File("file.txt")类 Java public final class User { }Kotlin class User公开类 Java public class User { }Kotlin open class User属性类 Java final class User {pri…...

redis基本数据结构介绍

Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的高性能键值对数据库&#xff0c;它支持多种数据结构&#xff0c;包括字符串、哈希、列表、集合、有序集合等。这些数据结构为开发者提供了丰富的数据操作方式&#xff0c;使得Redis在缓存、消息队列、排行榜…...

云数据库RDS云监控

1. 什么是云数据库RDS&#xff1f;它有哪些特点&#xff1f; 云数据库RDS是一种在线关系型数据库服务&#xff0c;它具备的特点包括&#xff1a; 安全可靠&#xff1a;提供了容灾、备份、恢复等高可用性功能&#xff0c;确保数据的安全与可靠。弹性伸缩&#xff1a;用户可以根…...

全自动网页生成系统重构版源码

全自动网页生成系统重构版源码分享&#xff0c;所有模板经过精心审核与修改&#xff0c;完美兼容小屏手机大屏手机&#xff0c;以及各种平板端、电脑端和360浏览器、谷歌浏览器、火狐浏览器等等各大浏览器显示。 为用户使用方便考虑&#xff0c;全自动网页制作系统无需繁琐的注…...

Leetcode—33. 搜索旋转排序数组【中等】

2024每日刷题&#xff08;110&#xff09; Leetcode—33. 搜索旋转排序数组 实现代码 class Solution { public:int search(vector<int>& nums, int target) {int n nums.size();int l 0, r n - 1;while(l < r) {int m l (r - l) / 2;if(nums[m] target) …...

vulhub中Apache APISIX Dashboard API权限绕过导致RCE(CVE-2021-45232)

Apache APISIX是一个动态、实时、高性能API网关&#xff0c;而Apache APISIX Dashboard是一个配套的前端面板。 Apache APISIX Dashboard 2.10.1版本前存在两个API/apisix/admin/migrate/export和/apisix/admin/migrate/import&#xff0c;他们没有经过droplet框架的权限验证&…...

JavaSE习题 使用函数求最大值、求最大值方法的重载和求和方法的重载

目录 1 使用函数求最大值2 求最大值方法的重载3 求和方法的重载 1 使用函数求最大值 使用函数求最大值&#xff1a;创建方法求两个数的最大值max2&#xff0c;随后再写一个求3个数的最大值的函数max3。 ​要求&#xff1a; 在max3这个函数中&#xff0c;调用max2函数&#xff…...

英码科技携手昇腾共建算力底座:推出EA500I超强AI处理能力边缘计算盒子!

在数字经济浪潮中&#xff0c;算力已成为不可或缺的驱动力&#xff0c;为各行各业的数字化转型提供了强大的推动力。面对多元化和供需不平衡的挑战&#xff0c;需要实现从理论架构到软硬件实现的质的飞跃&#xff0c;以满足持续增长的算力需求&#xff0c;华为昇腾在这一方面展…...

蓝桥杯每日一题-----数位dp练习

题目 链接 参考代码 写了两个&#xff0c;一个是很久以前写的&#xff0c;一个是最近刚写的&#xff0c;很久以前写的时候还不会数位dp所以写了比较详细的注释&#xff0c;这两个代码主要是设置了不同的记忆数组&#xff0c;通过这两个代码可以理解记忆数组设置的灵活性。 im…...

Blender场景教程:秘密实验室

BY:Express the Chaos关于我做了5年视觉设计师&#xff0c;但没有正式的3D背景。我十一个月前养成了通过概念艺术和3D表达自己的习惯&#xff0c;不得不向Blender介绍自己&#xff08;因为它是免费软件&#xff0c;我忍不住要用&#xff09;&#xff0c;以及制作3D场景的整个机…...

提升前端效率:用快马实践vibe coding快速生成沉浸式番茄钟应用

最近在尝试提升前端开发效率时&#xff0c;发现了一种很有意思的开发方式——vibe coding。简单来说&#xff0c;就是通过描述想要的界面氛围和交互感觉&#xff0c;快速生成对应的功能代码。这种方式特别适合需要快速验证想法或者搭建基础框架的场景。 今天就用InsCode(快马)…...

Tealdeer终极指南:5分钟掌握命令行工具的快速使用技巧

Tealdeer终极指南&#xff1a;5分钟掌握命令行工具的快速使用技巧 【免费下载链接】tealdeer A very fast implementation of tldr in Rust. 项目地址: https://gitcode.com/gh_mirrors/te/tealdeer Tealdeer是一个基于Rust语言开发的极速tldr客户端实现&#xff0c;为命…...

ai辅助开发:让快马平台智能诊断并生成最优的wsl ubuntu环境配置方案

在折腾开发环境配置的路上&#xff0c;相信不少朋友都踩过WSL安装Ubuntu的坑。从选择版本、处理依赖到解决网络问题&#xff0c;整个过程就像开盲盒。最近尝试用AI辅助完成这个任务时&#xff0c;意外发现了一条捷径——通过智能交互就能生成量身定制的环境方案。 传统配置的痛…...

AI辅助开发:让快马AI理解并生成ccswitch工具的核心逻辑与UI管理代码

AI辅助开发&#xff1a;让快马AI理解并生成ccswitch工具的核心逻辑与UI管理代码 最近在开发一个网络切换工具ccswitch时&#xff0c;发现AI辅助开发能大幅提升效率。通过InsCode(快马)平台集成的AI模型&#xff0c;可以用自然语言描述需求&#xff0c;就能自动生成核心功能代码…...

Java调用C/C++库从未如此简单:3步实现JNI替代方案,性能提升40%的FFM实测报告

第一章&#xff1a;Java调用C/C库从未如此简单&#xff1a;3步实现JNI替代方案&#xff0c;性能提升40%的FFM实测报告Java开发者长期受限于JNI繁琐的头文件生成、本地方法注册、内存生命周期管理等痛点。如今&#xff0c;Java 21正式将Foreign Function & Memory API&#…...

你的瀑布图“站”对角度了吗?Matlab view命令参数详解与三维数据最佳视角选择

你的瀑布图“站”对角度了吗&#xff1f;Matlab view命令参数详解与三维数据最佳视角选择 在科研论文或技术报告中&#xff0c;一张精心设计的瀑布图(Waterfall Plot)往往能直观展示多维数据的复杂特征。但许多Matlab用户都有这样的困惑&#xff1a;明明数据准确无误&#xff0…...

Qwen2.5-14B-Instruct开源模型落地:像素剧本圣殿短视频脚本批量生成

Qwen2.5-14B-Instruct开源模型落地&#xff1a;像素剧本圣殿短视频脚本批量生成 1. 项目概述 像素剧本圣殿&#xff08;Pixel Script Temple&#xff09;是一款基于Qwen2.5-14B-Instruct深度微调的专业剧本创作工具。它将顶尖的AI推理能力与8-Bit复古美学完美融合&#xff0c…...

LeaguePrank:英雄联盟客户端个性化引擎完全指南

LeaguePrank&#xff1a;英雄联盟客户端个性化引擎完全指南 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank 1. 价值定位&#xff1a;重新定义游戏界面体验 1.1 产品核心价值 LeaguePrank作为开源的英雄联盟客户端个性化引擎…...

【APS合集】20余份APS生产排成系统及与其他系统集成方案合集(PPT+WORD)

本方案面向“十五五”构建以约束优化算法为核心的APS智能排程系统&#xff0c;通过集成ERP、MES、SCADA及WMS&#xff0c;实现计划-执行闭环联动。旨在解决人工排产低效、资源冲突频发等痛点&#xff0c;支持分钟级动态重排与交期精准承诺&#xff0c;显著提升设备利用率与订单…...